home *** CD-ROM | disk | FTP | other *** search
/ ASP Advantage 1994 2nd Q2 / The Association of Shareware Professionals - The Official ASP Advantage (2nd Quarter)(1994).bin / files / utilstem / boot202 / qemm.doc < prev    next >
Encoding:
Text File  |  1994-01-06  |  13.6 KB  |  313 lines

  1.  
  2.  
  3.  
  4.           BOOT.SYS                     QEMM.DOC                Version 2.02
  5.  
  6.  
  7.  
  8.           BOOT.SYS(tm) and the accompanying programs and documentation are
  9.  
  10.  
  11.               Copyright (c) 1989, 1990, 1991, 1993, 1994 Hans Salvisberg
  12.                                  All rights reserved
  13.  
  14.  
  15.  
  16.           This file contains information related to using Quarterdeck's
  17.           QEMM 7.01 (and probably later) under BOOT.SYS control:
  18.  
  19.               1. What's special about QEMM 7.01+
  20.               2. How BOOT.SYS handles it
  21.               3. Using BOOT.EDIT
  22.               4. Using BOOT.RENAME
  23.               5. New Predicates
  24.               6. Running OPTIMIZE with BOOT.SYS installed
  25.               7. Using DOSDATA.SYS (7.02+) with DOS=LOW
  26.               8. Trouble-shooting
  27.               9. Acknowledgements
  28.  
  29.  
  30.  
  31.           1. What's special about QEMM 7.01+
  32.  
  33.           Version 7.01 of QEMM introduced a new feature called DOS-Up,
  34.           which loads a larger part of DOS into upper memory than DOS can
  35.           do on its own.  This feature is enabled with commands like:
  36.  
  37.               DEVICE=c:\qemm\DOSDATA.SYS
  38.               DEVICE=c:\qemm\QEMM386.SYS <parameters>
  39.               DEVICE=c:\qemm\DOS-UP.SYS @filename
  40.  
  41.           The general idea behind DOS-Up is this:  Dosdata.Sys goes resi-
  42.           dent and immediately restarts the boot process.  Dosdata.Sys
  43.           keeps control during the short reboot and can manage DOS as DOS
  44.           boots up.  DOS starts executing Config.Sys and loads Dosdata.Sys
  45.           again.  Dosdata.Sys detects that it's running for the second time
  46.           and lets the boot process continue;  it doesn't even display a
  47.           sign-on message.
  48.  
  49.           In a single-configuration setting, this process is completely
  50.           transparent and you as the user will probably not notice what's
  51.           going on, as long as Dosdata.Sys is loaded at the top of Con-
  52.           fig.Sys.
  53.  
  54.           However, in a multi-configuration setting with BOOT.SYS (or any
  55.           other third-party configuration manager), you may not want to
  56.           load Dosdata.Sys for all your configurations, and thus you can't
  57.           put it at the top of Config.Sys.
  58.  
  59.  
  60.  
  61.           2. How BOOT.SYS handles it
  62.  
  63.           Let's look at a sample Config.Sys fragment with BOOT.SYS
  64.           installed:
  65.  
  66.               DEVICE=c:\boot\BOOT.SYS
  67.               DEVICE=BOOT.1 Plain DOS
  68.                 {commands for Plain DOS configuration}
  69.               DEVICE=BOOT.2 Maximum Lower Memory
  70.                 DEVICE=c:\qemm\DOSDATA.SYS
  71.                 DEVICE=c:\qemm\QEMM386.SYS <parameters>
  72.                 DEVICE=c:\qemm\DOS-UP.SYS @<filename>
  73.                 {more commands}
  74.               DEVICE=BOOT.3 Yet Another Configuration
  75.                 {...}
  76.               DEVICE=BOOT.END
  77.  
  78.           Notice that BOOT.SYS is at the top and Dosdata.Sys and its two
  79.           companion drivers are in configuration #2 (MaxMem).  Selecting
  80.           the Plain DOS configuration will not load any of the QEMM driv-
  81.           ers.
  82.  
  83.           If you want to boot up the MaxMem configuration, your boot
  84.           sequence will look like this:
  85.  
  86.             1. BOOT.SYS displays its menu and you select the MaxMem config-
  87.                uration.  BOOT.SYS detects that it will be followed by a
  88.                driver called Dosdata.Sys.  It saves your menu choice(s) in
  89.                a safe place and passes control back to DOS to execute the
  90.                configuration you selected.
  91.  
  92.             2. DOS runs Dosdata.Sys, which restarts the boot process.
  93.  
  94.             3. BOOT.SYS is called for the second time;  it realizes that it
  95.                was restarted via Dosdata.Sys and that you've already made
  96.                your menu choice(s) in step 1, and it makes those same
  97.                choices again for you, without redisplaying its menu(s).
  98.                Then it returns control back to DOS.
  99.  
  100.             4. Dos runs Dosdata.Sys again, which passes control back to DOS
  101.                without even displaying a sing-on message.
  102.  
  103.             5. The boot process continues normally with QEMM386.Sys, DOS-
  104.                Up.Sys, etc.
  105.  
  106.           Thanks to the special DOS-Up support built into BOOT.SYS you will
  107.           barely notice anything special going on, with one exception: the
  108.           BOOT.EDIT command.
  109.  
  110.  
  111.  
  112.           3. Using BOOT.EDIT
  113.  
  114.           The BOOT.EDIT command in BOOT.SYS lets you edit selected Con-
  115.           fig.Sys lines on-the-fly while booting up (see the BOOT.SYS docu-
  116.           mentation).  You can use BOOT.EDIT with all executable commands,
  117.           but if DOS-Up is present, the editing needs to be done either in
  118.           the first or the second pass, depending on what command you want
  119.           to edit.  We need to distinguish four categories of commands:
  120.  
  121.             A. DOS= commands are presented for editing during the first
  122.                pass (step 1 in the list above).  This is a technical
  123.                restriction.
  124.  
  125.             B. BOOT.SET commands can be used in various ways, e.g. to
  126.                change the menu structure on-the-fly by changing a BOOT.?
  127.                condition, and/or to set different parameters for drivers
  128.                loaded later on.  In the former situation, a variable needs
  129.                to have its proper value during both passes, in the latter
  130.                situation only in the second pass, but BOOT.SYS cannot tell
  131.                what a variable will be used for, and it presents BOOT.SET
  132.                commands in both passes for editing (more below).
  133.  
  134.             C. All other editable commands following Dosdata.Sys are only
  135.                presented in the second pass (step 3).
  136.  
  137.             D. There should usually be no commands preceding Dosdata.Sys.
  138.                If there are any, they are treated like BOOT.SET.
  139.  
  140.           It is inconvenient and often unnecessary to make the same edits
  141.           twice for BOOT.SET commands (and commands in category D).  If you
  142.           know that a certain variable will only be used during the second
  143.           pass (step 3), e.g. because it serves as a parameter to a device
  144.           driver that won't be loaded until the second pass, you can add
  145.           the /Q2 parameter to the BOOT.EDIT command.  For symmetry reasons
  146.           /Q1 is also allowed even though we do not see any practical
  147.           application for it.
  148.  
  149.           There is a simple test for finding out when you can use /Qi: if a
  150.           variable is really used in both passes, you need to make exactly
  151.           the same edits twice for the boot process to work as intended.
  152.           If it's only used in one pass (pass i), then it doesn't matter
  153.           what value it has in the other pass.
  154.  
  155.           The complete syntax for BOOT.EDIT looks like this:
  156.  
  157.               DEVICE=BOOT.EDIT [/Qi] [/Tn] [text]
  158.  
  159.           The /Qi parameter should only be used with commands in categories
  160.           B and D--all other commands are handled automatically by
  161.           BOOT.SYS.  If both /Qi and /Tn are given, /Qi has to come first.
  162.  
  163.  
  164.  
  165.           4. Using BOOT.RENAME
  166.  
  167.           Any BOOT.RENAME commands will be carried out in pass 1 and
  168.           ignored in pass 2.
  169.  
  170.  
  171.  
  172.           5. New Predicates
  173.  
  174.           The new predicates QEMM_PASS1 and QEMM_PASS2 can be used with
  175.           BOOT.IF if you need to distinguish between the two passes;  they
  176.           are true in the presence of Dosdata.Sys only.  QEMM_PASS1 is only
  177.           true below the Dosdata.Sys line!
  178.  
  179.  
  180.  
  181.           6. Running OPTIMIZE with BOOT.SYS installed
  182.  
  183.           Quarterdeck's OPTIMIZE was not designed to handle BOOT.SYS
  184.           correctly.  To run OPTIMIZE, you need to manually extract the
  185.           configuration you wish to optimize, run OPTIMIZE, and manually
  186.           reinsert the optimized configuration into Config.Sys.
  187.  
  188.           An alternative is to TRY to run OPTIMIZE with BOOT.SYS in place:
  189.  
  190.             0. Create the file OPTIMIZE.EXC in your c:\qemm directory with
  191.                the single line
  192.                       BOOT
  193.                in it.  If there already is an OPTIMIZE.EXC file, just add
  194.                that line at the bottom.  You only have to do this once.
  195.                The remaining steps have to be done every time you wish to
  196.                run OPTIMIZE.
  197.  
  198.             1. For every configuration that has QEMM in it (EXCEPT for the
  199.                one you wish to optimize) comment out the lines
  200.                       DEVICE=c:\qemm\DOSDATA.SYS
  201.                       DEVICE=c:\qemm\QEMM386.SYS ...
  202.                       DEVICE=c:\qemm\DOS-UP.SYS ...
  203.                by putting REM in front of each.
  204.  
  205.             2. Run OPTIMIZE and select the proper configuration on the boot
  206.                menu(s) each time.  After OPTIMIZE has completed success-
  207.                fully:
  208.  
  209.             3. Put the
  210.                       DEVICE=c:\qemm\DOSDATA.SYS
  211.                line back where it belongs (OPTIMIZE moves it to the top of
  212.                the file).
  213.  
  214.             4. OPTIMIZE will always change the DOS-Up.Sys line to
  215.                       DEVICE=c:\qemm\DOS-UP.SYS @c:\qemm\DOS-UP.DAT
  216.                no matter what the name of the data file was.  If you have
  217.                more than one QEMM configuration, you have to use different
  218.                versions of DOS-UP.DAT for each:  you have to change the
  219.                file name on the DOS-Up.Sys line back to the proper name for
  220.                this configuration and rename the newly optimized DOS-UP.DAT
  221.                file accordingly.
  222.  
  223.             5. Remove the REM's that you inserted in step 1.
  224.  
  225.           We have had some success in running OPTIMIZE this way, even if
  226.           other memory managers were present in other configurations, but
  227.           there's no guarantee this will work in all cases.  You will have
  228.           to experiment with your particular setup and you should compare
  229.           the optimized Config.Sys line for line with the original one
  230.           (usually saved as CONFIG.QDK) at least once to make sure the
  231.           OPTIMIZE process doesn't introduce any other unwanted changes
  232.           that you need to undo (besides 3 and 4 above).
  233.  
  234.  
  235.  
  236.           7. Using DOSDATA.SYS (7.02+) with DOS=LOW
  237.  
  238.           Version 7.02 of QEMM has brought us another small twist.  If you
  239.           have set up BOOT.SYS with DOS=HIGH,NOUMB at the bottom of CON-
  240.           FIG.SYS, as recommended, and you want to use DOSDATA.SYS in a
  241.           DOS=LOW configuration, your PC may not be able to boot up under
  242.           MS/PC-DOS 5.0 and later.
  243.  
  244.           You can work around the problem by adding an undocumented parame-
  245.           ter to the DEVICE=c:\qemm\DOSDATA.SYS line, depending on your DOS
  246.           version and whether you use disk compression:
  247.  
  248.               DOS 5.x                      /INITBASE=1101
  249.               DOS 6.x                      /INITBASE=1101
  250.               DOS 6.x with Stacker         /INITBASE=1A01
  251.               DOS 6.x with DoubleSpace     /INITBASE=1201
  252.  
  253.           The parameter you supply is just a rough estimate and DOSDATA.SYS
  254.           will do the necessary fine-tuning automatically.
  255.  
  256.           If you should be unable to boot up with the values above, here is
  257.           the procedure to find out the correct value for your system:
  258.  
  259.             1. Add the undocumented switch /REPORT to the DEVI-
  260.                CE=c:\qemm\DOSDATA.SYS line and boot up with DOS=HIGH.  Note
  261.                the value reported by DOSDATA.SYS.
  262.  
  263.             2. Add 0A00h (hexadecimal) to the value; high negative numbers
  264.                will roll over to small positive ones.  If you don't know
  265.                how to do hexadecimal arithmetics ask a friend or contact
  266.                us.
  267.  
  268.             3. Use this value for /INITBASE=hhhh.
  269.  
  270.           /INITBASE is needed with QEMM 7.02 and 7.03.  Later versions may
  271.           not need it anymore.
  272.  
  273.  
  274.  
  275.           8. Trouble-shooting
  276.  
  277.           We sometimes get error reports caused by improper use of QEMM.
  278.           Please consider the following notes before contacting us.  We
  279.           believe the information presented here is correct, but of course
  280.           the Quarterdeck documentation and tech support have the final
  281.           word.
  282.  
  283.             -  If Dosdata.Sys is loaded, it must always be followed by DOS-
  284.                Up.Sys, otherwise your system will hang.
  285.  
  286.             -  The typical load sequence is BOOT.SYS, Dosdata.Sys,
  287.                QEMM386.Sys, and DOS-Up.Sys.  If you have a reason for omit-
  288.                ting QEMM386.Sys, DOS-Up.Sys can be made to continue without
  289.                waiting for a key press by adding the NOPAUSE parameter.
  290.  
  291.             -  QSETUP and OPTIMIZE always put Dosdata.Sys at the very top
  292.                of Config.Sys.  According to our tests Dosdata.Sys doesn't
  293.                mind running after other drivers (such as BOOT.SYS) and
  294.                other commands (such as the ones that are often listed above
  295.                BOOT.SYS to provide BUFFERS, FILES, STACKS, etc. defaults
  296.                for all configurations).  However, if there is a problem,
  297.                try moving these other commands below Dosdata.Sys.
  298.  
  299.             -  You can bypass installation of Dosdata.Sys and/or
  300.                QEMM386.Sys by holding down the Alt key while DOS is loading
  301.                the driver and pressing the Esc key at the prompt.  To
  302.                bypass both drivers you need to depress the Alt key again
  303.                very quickly after the first Esc.
  304.  
  305.  
  306.  
  307.           9. Acknowledgements
  308.  
  309.           Thanks to Phil Gardner and Michael Chapman of Quarterdeck for
  310.           their help in implementing the DOS-Up support.
  311.  
  312.           QEMM is a registered trademark of Quarterdeck Office Systems.
  313.